home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Utilities Professional 1-1500
/
Utilities Professional 1-1500 (1994)(WPD)[!].iso
/
00010250
/
var0159.dms
/
var0159.adf
/
removexeno.s
< prev
next >
Wrap
Text File
|
1987-01-01
|
909b
|
42 lines
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;
; Check for and Remove the Xeno Virus
;
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
xref _DOSBase
xdef _CheckRAMForXeno
_CheckRAMForXeno
move.l _DOSBase,a0 ; Get addr of Open() Vector
sub.w #$1c,a0
move.l (a0),a0
move.l a0,d0 ;: If Bit 0 of the Address is set,
btst #0,d0 ;: then it's not really an address
bne.s .NoVirus
cmp.l #$B47C03EE,(a0)
bne.s .NoVirus
cmp.l #$67000224,4(a0)
bne.s .NoVirus
;:: If we're here, we're fairly sure A0 is pointing to the
;:: base of the Xeno virus (well, not it's base, but the address
;:: of the first vector it stole, the Open() one.
;:: So we'll nuke it. 8-)
move.w #$6000,$4(a0)
move.w #$603E,$240(a0)
move.w #$601E,$29C(a0)
moveq #1,d0 ;:: Return TRUE
rts
.NoVirus ;:: Nothing here, return FALSE
moveq #0,d0
rts